class Register {
    constructor() {
        //注册按钮
        this.$('.over').addEventListener('click', this.rej.bind(this, username, psw, repsw, tel))
        //用户名验证
        this.$('#username').addEventListener('blur', this.username.bind(this))
        //手机号验证
        this.$('#tel').addEventListener('blur', this.tel.bind(this))
        //验证码验证
        this.$('#code').addEventListener('blur', this.code.bind(this))
        //密码验证
        this.$('#psw').addEventListener('blur', this.psw.bind(this))
        //重复密码验证
        this.$('#repsw').addEventListener('blur', this.repsw.bind(this, psw))
    }
    rej(username, psw, repsw, tel) {
        //选择框
        // this.repsw();
        // this.psw();
        // this.code();
        // this.tel();
        // this.username();
        this.Checked();
        // console.log(this.$('.over').disabled);
        // console.log(username.value);
        //发送请求
        let param = `username=${tel.value}&password=${psw.value}&rpassword=${repsw.value}&nickname=${username.value}`;
        // console.log(param);
        axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded';
        axios.defaults.headers.common['Authorization'] = localStorage.getItem('token');
        axios.post('http://localhost:8888/users/register', param).then(res => {
            let { status, data } = res;
            //status 200请求服务器成功   code 1 接口成功
            // 判断服务器状态
            // console.log(data);
            if (status != 200) return;
            if (data.code == 1) {
                layer.msg('注册成功！，是否前往登录', {
                    time: 0 //不自动关闭
                    , btn: ['是', '否']
                    , yes: function (index) {
                        layer.close(index);
                        location.href = './login.html'
                    }
                })
            } else {
                layer.alert('注册失败！')
            }
        });
    }
    username() {
        //用户名
        let username = this.$('#username').value.trim();
        if (!username) {
            layer.msg('用户名不能为空');
            return;
        }
        // 用户名匹配
        let username1 = /^[\w\-\u4E00-\u9FA5]{4,20}$/i;
        if (username1.test(username)) {
        } else {
            layer.tips('用户名错误', this.$('#username'));
        }
    }
    tel() {
        //手机号
        let tel = this.$('#tel').value.trim();
        if (!tel) {
            layer.msg('手机号不能为空');
            return;
        }
        // 手机号匹配
        //规律 以1开头 ,第二位 356789 第三位及以后0-9
        let tel1 = /^1{1}[356789]{1}\d{9}$/;
        if (tel1.test(tel)) {
            // console.log(11111);
        } else {
            layer.tips('手机号错误', this.$('#tel'));
        }
    }
    code() {
        //验证码
        let code = this.$('#code').value.trim();
        if (!code) {
            layer.msg('验证码不能为空');
            return;
        }
        let code1 = /^\d{6}$/;
        if (code1.test(code)) {
        } else {
            layer.tips('验证码错误', this.$('#code'));
        }
    }
    psw() {
        //密码
        let psw = this.$('#psw').value.trim();
        if (!psw) {
            layer.msg('密码不能为空');
            return;
        }
        if (psw.length >= 6 && psw.length <= 16) {
            // 判断密码的强度,有一种符号,则设置一次数字
            var a = 0, b = 0, c = 0;
            // 数字的验证
            var numReg = /\d+/;
            numReg.test(psw) && (a = 1);
            // 字母验证
            var codeReg = /[a-z]+/i;
            codeReg.test(psw) && (b = 1);
            // 特殊符号验证
            var speReg = /[^\da-z]+/i;
            speReg.test(psw) && (c = 1);
            // console.log(a, b, c);
            // 根据结果判断强中弱
            var result = '弱';
            (a + b + c == 3) && (result = '强');
            (a + b + c == 2) && (result = '中');
            layer.tips(result, this.$('#psw'));
            // 设置密码验证通过
        } else {
            layer.tips('密码错误', this.$('#psw'));
            return;
        }
    }
    repsw(psw) {
        // 重复密码
        let repsw = this.$('#repsw').value.trim();
        if (!repsw) {
            layer.msg('请重复密码');
            return;
        }
        // console.log(psw.value, repsw);
        if (psw.value == repsw) {
        } else {
            layer.tips('密码重复错误', this.$('#repsw'));
        }
    }
    Checked() {
        if (this.$('.agree input').checked) {
            // return true;
        } else {
            layer.msg('协议未勾选');

        }
    }
    //获取节点的方法
    $(ele) {
        let res = document.querySelectorAll(ele);
        return res.length == 1 ? res[0] : res;
    }
}
new Register;

//   // 免密登录保持时间, 单位: 秒(s)
//   tokenKeep: 60 * 60,
//   // token 的签证字符串, 可以自主更改
//   tokenSignkey: 'guoxiang',
//   // 用户名的正则, 可以自主更改
//   username: /^[a-z0-9]\w{4,11}$/,
//   // 密码的正则, 可以自主更改
//   password: /\w{6,12}/,
//   // 重启服务器是否保持登录状态
//   keep: false
